package com.situ.mall.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.situ.mall.entity.Cart;

public interface CartMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Cart record);

    int insertSelective(Cart record);

    Cart selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Cart record);

    int updateByPrimaryKey(Cart record);

//自己写的
    
//前台
    //1.product_detial.jsp 加入购物车， service逻辑处理：先查找购物车(cart表) 有没有这个商品
    Cart selectCartItemByCartIdAndUserId(@Param(value = "productId")Integer productId, 
    										@Param(value = "userId")Integer userId);
    // 2. product_list.jsp -->  点我的购物车(根据 userId 用户id) -->cart_list.jsp购物车页面 所有商品  (cart表里的全部内容)
	List<Cart> selectCartListByUserId(Integer userId);

	// 3. 2020.03.20：:删除 购物车的商品   （删除cart表  by cartId）（deleteCartItemByCartId）  
	// 逆向工程 内置删除方法：deleteByPrimaryKey(cartId)
	
	// 4. 2020.03.20  修改 购物车内 商品的数量（update cart表的quantity字段）  
	int updateCartItemQuantityByCartId(@Param(value = "cartId")Integer cartId, 
										@Param(value = "addOrSub")Integer addOrSub);

	//5.购物车页面 cart_list.jsp :复选框  选中checked=1，未选中checked=0
	int updateCartItemCheckStatusByCartId(@Param(value = "cartId")Integer cartId, 
											@Param(value = "checked")Integer checked);

	
//订单页面 order_confirm.jsp
	
	//1. cart_list结算 --》 order_confirm 获取 用户的      所有地址by userId & 所有购物车 选中的商品by userId checked=1
	List<Cart> selectOrderConfirmCartListByUserIdAndChecked(@Param(value = "userId")Integer userId, 
															@Param(value = "checked")Integer checked);

	
}